using System.ComponentModel.DataAnnotations;

namespace SmartHealthcare.Read.Api.DTo
{
    /// <summary>
    /// 病人DTO（包含住院登记信息）
    /// </summary>
    public class PatientListDto
    {
        /// <summary>
        /// 主键ID
        /// </summary>
        public long Id { get; set; }

        /// <summary>
        /// 身份证号
        /// </summary>
        public string IdCard { get; set; } = string.Empty;

        /// <summary>
        /// 医疗卡
        /// </summary>
        public string MedicalCard { get; set; } = string.Empty;

        /// <summary>
        /// 姓名
        /// </summary>
        public string Name { get; set; } = string.Empty;

        /// <summary>
        /// 性别
        /// </summary>
        public string Gender { get; set; } = string.Empty;

        /// <summary>
        /// 出生日期
        /// </summary>
        public DateTime BirthDay { get; set; }

        /// <summary>
        /// 手机
        /// </summary>
        public string Phone { get; set; } = string.Empty;

        /// <summary>
        /// 地址
        /// </summary>
        public string Address { get; set; } = string.Empty;

        /// <summary>
        /// 创建时间
        /// </summary>
        public DateTime CreateTime { get; set; }

        /// <summary>
        /// 创建用户
        /// </summary>
        public string CreateUser { get; set; } = string.Empty;

        // ========== 住院登记表字段 ==========

        /// <summary>
        /// 住院登记ID
        /// </summary>
        public long? InpatientRegistryId { get; set; }

        /// <summary>
        /// 科室ID
        /// </summary>
        public long? DepartmentId { get; set; }

        /// <summary>
        /// 科室名称
        /// </summary>
        public string DepartmentName { get; set; } = string.Empty;

        /// <summary>
        /// 病房号
        /// </summary>
        public long? WardNo { get; set; }

        /// <summary>
        /// 病床ID
        /// </summary>
        public long? WardId { get; set; }

        /// <summary>
        /// 预交费
        /// </summary>
        public decimal? AdvancePayment { get; set; }

        /// <summary>
        /// 病情描述
        /// </summary>
        public string DiseaseDescription { get; set; } = string.Empty;

        /// <summary>
        /// 药物禁忌
        /// </summary>
        public string DrugContraindications { get; set; } = string.Empty;

        /// <summary>
        /// 入院时间
        /// </summary>
        public DateTime? AdmissionTime { get; set; }

        /// <summary>
        /// 出院状态 (true:已出院 false:未出院)
        /// </summary>
        public bool? DischargeStatus { get; set; }
    }
} 